/*
 * 作者		www.TheWk.cn.vc
 * 开发环境	Windows7 64位 MyEclipse8.6 JDK1.6.0_37
 * 开发日期	2013-11-13
 */
package common.utils;

import org.apache.commons.lang.StringUtils;


/**
 * 区域编码算法帮助类
 * 规则--省： 2位、市：2位、区：2位、街道：3位。
 * @author xuan
 */
public abstract class AreaUtils {
	
	/**
	 * 未选择的值
	 */
	public static String NO_SELECTED = "0";
	
	public static int province_type = 1;
	public static int city_type = 2;
	public static int area_type = 3;
	public static int block__type = 4;
	
	
	/**
	 * 根据区域编码判断该编码级别
	 * 省：1、市：2、区：3、街道：4
	 * @param code
	 * @return
	 */
	public static int getAreaTypeByCode(String code){
		if(StringUtils.isBlank(code)){
			return 0;
		}
		long codeLong = Long.parseLong(code);
		if(codeLong%10000000 == 0){
			return province_type;
		}else if(codeLong%100000 == 0){
			return city_type;
		}else if(codeLong%1000 == 0){
			return area_type;
		}else {
			return block__type;
		}
	}

	/**
	 * 获取区域同级编码的下一个
	 * @param code
	 * @return
	 */
	public static long getSameLevelNextCode(String code){
		int key = getAreaTypeByCode(code);
		if(province_type == key){
			long p = Long.parseLong(code.substring(0,2))+1;
			return p*10000000;
		}
		if(city_type == key){
			long p = Long.parseLong(code.substring(0,4))+1;
			return p*100000;
		}
		if(area_type == key){
			long p = Long.parseLong(code.substring(0,6))+1;
			return p*1000;
		}
		if(block__type == key){
			long p = Long.parseLong(code)+1;
			return p;
		}
		return 0;
	}

	public static void main(String[] args) {
	}

}
